home *** CD-ROM | disk | FTP | other *** search
/ Aminet 22 / Aminet 22 (1997)(GTI - Schatztruhe)[!][Dec 1997].iso / Aminet / util / boot / AllocFrags.readme < prev    next >
Text File  |  1997-11-02  |  3KB  |  50 lines

  1. Short:    Brutally remove small mem frags on 040/060 systems (+src)
  2. Author:   bernie@shock.cosmos.it (Bernardo Innocenti)
  3. Uploader: bernie@shock.cosmos.it (Bernardo Innocenti)
  4. Type:     util/boot
  5.  
  6.  Use the included AvailFrag program or a system monitor such as Scout
  7. or XOper to determine if your system memory list has many small holes
  8. of 8 to 256 bytes each. Lots of small chunks are usually made by badly
  9. written programs (not freeing all the memory they allocated).
  10.  
  11.  On systems equipped with 68040 or 68060 the program SetPatch will
  12. load the 68060.library  68040.library at boot time. These libraries
  13. will setup the MMU page descriptors to cover all addressable memory
  14. space, including space reserved by Zorro boards. Unfortunately, the
  15. 040/060 MMUs require an 512-byte alignament for the descriptors,
  16. even if they only take up 256 bytes. So they free up the remaining
  17. 256 bytes in order to give some memory back to the system. On my
  18. Amiga 4000, which is fitted with four Zorro boards, this leaves more
  19. than 500 memory chunks right after booting the system! Such a
  20. fragmented memory list will slow down all AllocMem() and FreeMem()
  21. calls because they need to scan almost the entire list before they
  22. can reach the first memory chunk bigger than 256 byte.
  23.  
  24.  Put AllocFrags anywhere in your Startup-Sequence after SetPatch.
  25. It will remove from the memory list any chunks whose size is equal
  26. or smaller than 256 bytes. Using AllocFrags frequently during your
  27. normal system activity is not a good idea because it might cause
  28. even more fragmentation in your memory list once you close a
  29. program and it frees a memory block which was contiguous to one
  30. already removed by AllocFrags.
  31.  
  32.  I admit AllocFrags is a real hack and it WILL stop working when
  33. the OS memory allocation engine is changed (e.g.: to accomodate
  34. virtual or protected memory). Anyway, I'm sure that AllocFrags on
  35. OS 2.0 upto 3.1 will not cause any incompatibilities or system
  36. crashes. Inspect the source code if you don't believe me.
  37.  
  38.  
  39. ============================= Archive contents =============================
  40.  
  41. Original  Packed Ratio    Date     Time    Name
  42. -------- ------- ----- --------- --------  -------------
  43.      284     271  4.5% 18-Oct-97 19:20:14 +AllocFrags
  44.     1649     754 54.2% 18-Oct-97 18:29:58 +AllocFrags.c
  45.     1998    1033 48.2% 18-Oct-97 19:19:30 +AllocFrags.readme
  46.      970     446 54.0% 12-Oct-97 00:28:30 +AllocFrags.¶
  47.      174     125 28.1% 11-Oct-97 23:23:54 +SMakefile
  48. -------- ------- ----- --------- --------
  49.     5075    2629 48.1% 20-Oct-97 00:03:16   5 files
  50.